package com.iplatform.module.privilege;

import com.iplatform.module.annotation.KeyId;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * <p>
 * Title: PriMenuBean
 * </p>
 * <p>
 * Description:
 * </p>
 *
 * @author RayLLi
 * @date 2018年8月27日
 */
@ApiModel()
@Data
public class PriMenuBean implements Serializable, Cloneable {
	
	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = -4097947205286109031L;
	
	@KeyId
	@ApiModelProperty(value = "ID", dataType = "String")
	private String menuId;
	
	@ApiModelProperty(value = "父ID", dataType = "String")
	private String parentId;
	
	@ApiModelProperty(value = "CODE(图册id)", dataType = "String")
	private String menuCode;
	
	@ApiModelProperty(value = "名称", dataType = "String", required = true)
	private String menuName;
	
	@ApiModelProperty(value = "有缩进的地图名称", hidden = true, dataType = "String")
	private String lpadMenuName;
	
	@ApiModelProperty(value = "菜单数量", hidden = true, dataType = "String")
	private String optCount;
	
	@ApiModelProperty(value = "所有父类", hidden = true, dataType = "String")
	private String allParentsId;
	
	@ApiModelProperty(value = "上一级父Id", hidden = true, dataType = "String")
	private String treeParentsId;
	
	@ApiModelProperty(value = "地图排序", hidden = true, dataType = "String")
	private String treeId;
	
	@ApiModelProperty(value = "子地图数量", hidden = true, dataType = "String")
	private String childCount;
	
	@ApiModelProperty(value = "选中的菜单", hidden = true, dataType = "String")
	private String selectedMenu;
	
	@ApiModelProperty(value = "描述", hidden = true, dataType = "String")
	private String description;
	
	@ApiModelProperty(value = "链接(路由地址)", dataType = "String")
	private String menuLink;
	
	@ApiModelProperty(value = "新链接(组件地址)", dataType = "String")
	private String floatLink;
	
	@ApiModelProperty(value = "是否叶子节点", dataType = "BigDecimal", example = "123.00")
	private BigDecimal isLeaf;
	
	@ApiModelProperty(value = "地图等级", hidden = true, dataType = "int", example = "123")
	private Integer menuLevel;
	
	@ApiModelProperty(value = "地图排序", dataType = "String", example = "123")
	private Integer menuOrd;
	
	@ApiModelProperty(value = "状态", dataType = "String")
	private String status;
	
	@ApiModelProperty(value = "标注", hidden = true, dataType = "String")
	private String remark;
	
	@ApiModelProperty(value = "更新时间", hidden = true, dataType = "String")
	private String updatedDt;
	
	@ApiModelProperty(value = "更新人", hidden = true, dataType = "String")
	private String updatedBy;
	
	@ApiModelProperty(value = "创建时间", hidden = true, dataType = "String")
	private String createdDt;
	
	@ApiModelProperty(value = "创建人", hidden = true, dataType = "String")
	private String createdBy;
	
	@ApiModelProperty(value = "是否删除", hidden = true, dataType = "String")
	private String isDeleted;
	
	@ApiModelProperty(value = "版本号不传默认为1", hidden = true, dataType = "BigDecimal", example = "123.00")
	private BigDecimal version;
	
	@ApiModelProperty(value = "子菜单", hidden = true, dataType = "java.util.List")
	private List<PriMenuBean> priMenuBeans;
	
	@ApiModelProperty(value = "是否为当前用户主页", hidden = true, dataType = "String")
	private String isHome;
	
	private List<PriMenuBean> childs;
	
	@ApiModelProperty(value = "是哪个系统的菜单", dataType = "String")
	private String systemCode;
	
	@ApiModelProperty(value = "菜单类型，0为系统，1为功能")
	private String menuType;
	
	@ApiModelProperty(value = "菜单打开方式,0为内部打开,1为新窗口打开")
	private String openMode;
	
	
	
	@ApiModelProperty(value = "菜单Id", dataType = "String")
	private String resourceMenuId;
	
	public String getResourceMenuId() {
		return resourceMenuId;
	}
	
	public void setResourceMenuId(String resourceMenuId) {
		this.resourceMenuId = resourceMenuId;
	}
	
	public String getOpenMode() {
		return openMode;
	}
	
	public void setOpenMode(String openMode) {
		this.openMode = openMode;
	}
	
	public String getMenuType() {
		return menuType;
	}
	
	public void setMenuType(String menuType) {
		this.menuType = menuType;
	}
	
	public String getSystemCode() {
		return systemCode;
	}
	
	public void setSystemCode(String systemCode) {
		this.systemCode = systemCode;
	}
	
	@ApiModelProperty(value = "图标", dataType = "String")
	private String icon;
	
	public String getIcon() {
		return icon;
	}
	
	public void setIcon(String icon) {
		this.icon = icon;
	}
	
	public String getMenuId() {
		return menuId;
	}
	
	public void setMenuId(String menuId) {
		this.menuId = menuId;
	}
	
	public String getParentId() {
		return parentId;
	}
	
	public void setParentId(String parentId) {
		this.parentId = parentId;
	}
	
	public String getMenuCode() {
		return menuCode;
	}
	
	public void setMenuCode(String menuCode) {
		this.menuCode = menuCode;
	}
	
	public String getMenuName() {
		return menuName;
	}
	
	public void setMenuName(String menuName) {
		this.menuName = menuName;
	}
	
	public String getLpadMenuName() {
		return lpadMenuName;
	}
	
	public void setLpadMenuName(String lpadMenuName) {
		this.lpadMenuName = lpadMenuName;
	}
	
	public String getOptCount() {
		return optCount;
	}
	
	public void setOptCount(String optCount) {
		this.optCount = optCount;
	}
	
	public String getSelectedMenu() {
		return selectedMenu;
	}
	
	public void setSelectedMenu(String selectedMenu) {
		this.selectedMenu = selectedMenu;
	}
	
	public String getAllParentsId() {
		return allParentsId;
	}
	
	public void setAllParentsId(String allParentsId) {
		this.allParentsId = allParentsId;
	}
	
	public String getTreeParentsId() {
		return treeParentsId;
	}
	
	public void setTreeParentsId(String treeParentsId) {
		this.treeParentsId = treeParentsId;
	}
	
	public String getTreeId() {
		return treeId;
	}
	
	public void setTreeId(String treeId) {
		this.treeId = treeId;
	}
	
	public String getChildCount() {
		return childCount;
	}
	
	public void setChildCount(String childCount) {
		this.childCount = childCount;
	}
	
	public String getDescription() {
		return description;
	}
	
	public void setDescription(String description) {
		this.description = description;
	}
	
	public String getMenuLink() {
		return menuLink;
	}
	
	public void setMenuLink(String menuLink) {
		this.menuLink = menuLink;
	}
	
	
	public String getFloatLink() {
		return floatLink;
	}
	
	public void setFloatLink(String floatLink) {
		this.floatLink = floatLink;
	}
	
	public BigDecimal getIsLeaf() {
		return isLeaf;
	}
	
	public void setIsLeaf(BigDecimal isLeaf) {
		this.isLeaf = isLeaf;
	}
	
	public Integer getMenuLevel() {
		return menuLevel;
	}
	
	public void setMenuLevel(Integer menuLevel) {
		this.menuLevel = menuLevel;
	}
	
	public Integer getMenuOrd() {
		return menuOrd;
	}
	
	public void setMenuOrd(Integer menuOrd) {
		this.menuOrd = menuOrd;
	}
	
	public String getStatus() {
		return status;
	}
	
	public void setStatus(String status) {
		this.status = status;
	}
	
	public String getRemark() {
		return remark;
	}
	
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	public String getUpdatedDt() {
		return updatedDt;
	}
	
	public void setUpdatedDt(String updatedDt) {
		this.updatedDt = updatedDt;
	}
	
	public String getUpdatedBy() {
		return updatedBy;
	}
	
	public void setUpdatedBy(String updatedBy) {
		this.updatedBy = updatedBy;
	}
	
	public String getCreatedDt() {
		return createdDt;
	}
	
	public void setCreatedDt(String createdDt) {
		this.createdDt = createdDt;
	}
	
	public String getCreatedBy() {
		return createdBy;
	}
	
	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}
	
	public String getIsDeleted() {
		return isDeleted;
	}
	
	public void setIsDeleted(String isDeleted) {
		this.isDeleted = isDeleted;
	}
	
	public BigDecimal getVersion() {
		return version;
	}
	
	public void setVersion(BigDecimal version) {
		this.version = version;
	}
	
	public String getIsHome() {
		return isHome;
	}
	
	public void setIsHome(String isHome) {
		this.isHome = isHome;
	}
	
	public List<PriMenuBean> getChilds() {
		return childs;
	}
	
	public void setChilds(List<PriMenuBean> childs) {
		this.childs = childs;
	}
	
	
	public List<PriMenuBean> getPriMenuBeans() {
		return priMenuBeans;
	}
	
	public void setPriMenuBeans(List<PriMenuBean> priMenuBeans) {
		this.priMenuBeans = priMenuBeans;
	}
	
	@Override
	public Object clone() throws CloneNotSupportedException {
		Object object = super.clone();
		return object;
	}
	
}